'''
Created on 15/10/2011

@author: Daniel
'''
from Tkinter import *
import tkMessageBox
from VariaveisGlobais import *
from Programa import *

class Janela_consulta_funcionario:
    def __init__(self, raiz):
        self.meuPai = raiz

        self.frame1=Frame(self.meuPai)
        self.frame1.grid(row = 1, column = 1)
        self.frame2=Frame(self.frame1)
        self.frame2.grid(row = 5, column = 1)

        self.var_escolha = StringVar(self.frame1)
        self.var_escolha.set('Nome') 
        self.escolha = OptionMenu(self.frame1, self.var_escolha, 'Nome', 'Cpf')
        self.escolha.config(width = 8)        
        self.escolha.grid(row = 1, column = 1, sticky = W)

        self.texto = Entry(self.frame1, width = 20, font = fonte_texto)
        self.texto.grid(row = 1, column = 1, sticky = E)
        self.texto.focus_force()

        self.botao_pesquisar = Button(self.frame1, width = 15, command = self.Pesquisar, text = "Pesquisar")
        self.botao_pesquisar.grid(row = 1, column = 3, sticky = W)

        Label(self.frame1, text='Nome    /    Cpf', font = fonte_label).grid(row = 2, column = 1, sticky = W)
        self.listbox_funcionarios = Listbox(self.frame1, font = fonte_texto, width = 35)
        self.listbox_funcionarios.grid(row = 3, column = 1, sticky = W)

        self.scroll = Scrollbar(self.frame1, command = self.listbox_funcionarios.yview)
        self.scroll.grid(row = 3, column = 2, sticky=(N,S))

        self.listbox_funcionarios['yscrollcommand'] = self.scroll.set

        Label(self.frame1, text='Perfil', font = fonte_label).grid(row = 2, column = 3, sticky = W)
        self.listbox_att = Listbox(self.frame1, font = fonte_texto, width = 40)
        self.listbox_att.grid(row = 3, column = 3, sticky = W)

        Label(self.frame2, text="").grid(row = 2, column = 1)
        self.botao_mostrar_att = Button(self.frame2, width = 15, command = self.Escolha, text = "Perfil Completo")
        self.botao_mostrar_att.grid(row = 3, column = 1, sticky = NW, padx= 10)

        self.botao_editar = Button(self.frame2, width = 15, command = None, text = "Editar")
        self.botao_editar.grid(row = 3, column = 2, sticky = NE, padx= 10)

        self.botao_excluir = Button(self.frame2, width = 15, command = self.Excluir, text = "Deletar")
        self.botao_excluir.grid(row = 4, column = 1, sticky = NW, padx= 10, pady = 10)
        
        self.botao_cancelar = Button(self.frame2, width = 15, command = self.Cancelar, text = "Cancelar")
        self.botao_cancelar.grid(row = 4, column = 2, sticky = NE, padx = 10, pady = 10)
        
        Label(self.frame1, text='Endereco', font = fonte_label).grid(row = 4, column = 3, sticky = W)
        self.listbox_endereco = Listbox(self.frame1, font = fonte_texto, width = 40, height = 8)
        self.listbox_endereco.grid(row = 5, column = 3, sticky = W)

    def Pesquisar(self):
        
        self.listbox_funcionarios.delete(0, END)
        
        if self.var_escolha.get() == 'Nome':
            self.resultado = programa.consultar_funcionario("nome", self.texto.get())
            for objeto in self.resultado:
                self.nome = objeto[1]
                self.cpf = objeto[5]
                
                self.listbox_funcionarios.insert(END, str(self.nome) + '     ' + str(self.cpf))
                
        if self.var_escolha.get() == "Cpf":
            self.resultado = programa.consultar_funcionario("cpf", self.texto.get())
            for objeto in self.resultado:
                self.nome = objeto[1]
                self.cpf = objeto[5]
                
                self.listbox_funcionarios.insert(END, str(self.nome) + '     ' + str(self.cpf))

    def Escolha(self):
        try:
            indice = self.listbox_funcionarios.curselection()[0]
            self.valor = self.resultado[int(indice)]
            
            self.listbox_att.delete(0, END)
            self.listbox_att.insert(END, 'Nome: ' + '  ' + self.valor[1])
            self.listbox_att.insert(END, 'Telefone: ' + '  ' + self.valor[2])
            self.listbox_att.insert(END, 'Email: ' + '  ' + self.valor[3])
            self.listbox_att.insert(END, 'Funcao: ' + '  ' + self.valor[4])
            self.listbox_att.insert(END, 'CPF: ' + '  ' + self.valor[5])
            self.listbox_att.insert(END, 'Max de Emprestimos: ' + '  ' + str(self.valor[13]))
            self.listbox_att.insert(END, 'Autorizado: ' + '  ' + str(self.valor[14]))
            
            self.listbox_endereco.delete(0, END)
            self.listbox_endereco.insert(END, 'Nome da rua: ' + '  ' + self.valor[6])
            self.listbox_endereco.insert(END, 'Numero da casa: ' + '  ' + self.valor[7])
            self.listbox_endereco.insert(END, 'Cep: ' + '  ' + self.valor[8])
            self.listbox_endereco.insert(END, 'Complemento: ' + '  ' + self.valor[9])
            self.listbox_endereco.insert(END, 'Bairro: ' + '  ' + self.valor[10])
            self.listbox_endereco.insert(END, 'Cidade: ' + '  ' + self.valor[11])
            self.listbox_endereco.insert(END, 'Estado: ' + '  ' + self.valor[12])
        except:
            tkMessageBox.showwarning('Mensagem do sistema', 'Voce deve selecionar um item para poder visualizar seu perfil')

    def Excluir(self):
        indice = self.listbox_funcionarios.curselection()[0]
        self.valor = self.resultado[int(indice)]
        
        programa.remover_funcionario(self.valor[5])
    
    def Cancelar(self):
        try:
            self.meuPai.destroy()
            self.container = Frame(self.meuPai)
        except:
            pass
